Method and system of geographic migration of workloads between private and public clouds

ABSTRACT

A database contains available cloud environments to which a virtual image workload may be deployed. The database includes ratings for each available cloud option, such as cost, distance, reliability, which workloads that environment may handle. A table of attributes and weights is used to create a rating of the requested deployment. This rating determines where the image is deployed. The invention discloses techniques for gathering additional information from the user about the virtual image workload to be deployed. A mapping algorithm applies the attributes and weights to the gathered information to create a rating for the deployment. An algorithm is then used to determine to which available cloud environment the workload will be deployed.

FIELD OF THE INVENTION

This invention relates to a method and system for more efficientprocessing of computer system workloads and in particular to a methodand system for migrating computing system workloads between private andpublic clouds in order to facilitate more efficient use of computingresources and more efficient processing of computing workloads.

BACKGROUND OF THE INVENTION

A computer storage or memory comprises components used to retain digitaldata. The computer memory is a core component of computer systems.Computer systems generally incorporate a storage hierarchy. Thetraditional divisions of computer storage are primary, secondary,tertiary and off-line storage. Primary storage (or main memory) is oftenreferred to as the memory. The primary memory is the only memory typethat is directly accessible to the central processing unit (CPU). TheCPU continuously reads instructions stored there and executes them asrequired. Any data actively operated on is also stored there in uniformmanner. Secondary storage (also known as external memory or auxiliarystorage), differs from primary storage in that it is not directlyaccessible by the CPU. The computer usually uses its input/outputchannels to access secondary storage and transfers the desired datausing intermediate area in primary storage. Tertiary storage or tertiarymemory provides a third level of storage. Tertiary storage involves arobotic device which mounts, inserts and dismounts removable massstorage media into a storage device according to the system's demands.This data is often copied to secondary storage before use. It isprimarily used for archiving rarely accessed information since it ismuch slower than secondary storage. Tertiary storage is primarily usefulfor extraordinarily large data stores, accessed without human operators.Off-line storage is a computer data storage on a medium or a device thatis not under the control of a processing unit. The medium is recorded,usually in a secondary or tertiary storage device, and then physicallyremoved or disconnected. It must be inserted or connected by a humanoperator before a computer can access it again. Unlike tertiary storage,it cannot be accessed without human interaction. Off-line storage isused to transfer information, since the detached medium can be easilyphysically transported.

As technology has progressed, another form of computer storage isincreasing in popularity and usage. This form of storage is referred toas “cloud storage”. Cloud storage is based on cloud computing. Cloudcomputing describes a variety of computing concepts that involve a largenumber of computers connected through a real-time communication networkssuch as the Internet. In science, cloud computing is a synonym fordistributed computing over a network, and means the ability to run aprogram or application on many connected computers at the same time.

Cloud Computing Architecture

A cloud computing system is generally divided into two sections: thefront end and the back end. These sections connect to each other througha communication network such as the Internet. The user or clientcommunicates with the system through the front end section. The back endsection is the “cloud” section of the system.

The front end includes the client's machine and the application requiredto access the cloud computing system. Not all cloud computing systemshave the same user interface. Services like Web-based e-mail programsleverage existing Web browsers like Internet Explorer or Firefox. Othersystems have unique applications that provide network access to clients.On the back end of the system are the various computers, servers anddata storage systems that create the “cloud” of computing services. Intheory, a cloud computing system could include practically any computerprogram you can imagine, from data processing to video games. Usually,each application will have its own dedicated server.

In a cloud computing system, there's a significant workload shift. Localcomputers no longer have to do all the processing when it comes torunning applications. The network of computers that make up the cloudhandles them instead. Hardware and software demands on the user's sidedecrease. The first requirement is that the user's computer must executethe cloud computing system's interface software. This interface softwarecan be a basic Web browser. The cloud network covers the rest of theoperations. A second requirement is to be connected to the network withthe cloud.

As cloud computing has become a strategic initiative for largeenterprises, the new method of delivering and consuming IT services hasforced its users to rethink activities such as job scheduling. Oneaspect of job scheduling in cloud technology is workload automation.Workload as use herein is an abstraction of a process or set ofprocesses that can be componentized, individually operated upon andproduce a determinate result, with the abstraction being above thenetwork hardware and operating system layers. A job scheduler is a toolthat allows management and scheduling of jobs or workloads using acalendar system.

Workload automation is the evolution of job scheduling with advancedworkload management capabilities for the dynamic data center. Theaspects of scheduling workloads include automatically resolving complexdependencies on various platforms and application tiers and thentriggering workloads based on both IT and business events.

A primary function of a good workload automation solution is to providevisibility into enterprise-wide workloads, regardless of where theworkload or the workload automation solution is physically located.However, workloads are not operated along platform lines of separation.They have cross-platform dependences for computing needs and forapplication dependences. For instance, the workload automation solutioncould be on a mainframe but the workloads could be running ondistributed platforms, or vice-versa. Most vendors have separatesolutions for each platform, making it difficult for IT operations tounderstand workload dependencies across platforms or virtual servers.

For a dynamic workload automation solution, it becomes even more complexwhen workloads are run in the cloud, another virtual resource. Thismakes it important for the workload automation solution to be able tooffer full flexibility in its ability to operate agents acrossplatforms, virtual resource and the cloud and visibility into all ofthese workloads from a single place. To cite an example, CA WorkloadAutomation solution's CA Workload Command Center displays visibilityinto workloads in mainframe, distributed and Amazon EC2 cloud—all in asingle pane. This gives workload administrators visibility intoenterprise-wide workload infrastructure.

The second aspect of cross-platform workload management, beyondvisibility as discussed above is control. Workload administrators needthe ability to apply job definitions that abstract out the platformdifferences sufficiently in order to avoid recreating multiple jobdefinitions for each platform. This saves time, not only for adding newjob definitions, but also on maintenance and service and helps IToperations be more responsive to business needs.

Users access cloud computing using networked client devices, such asdesktop computers, laptops, tablets and smart phones. Cloudconfigurations can take the form of public clouds, private clouds orhybrid clouds. Private cloud is cloud infrastructure operated solely fora single organization, whether managed internally or by a third-partyand hosted internally or externally.

A cloud is a “public cloud” when the services are rendered over anetwork that is open for public use. There is little difference betweenthe architecture of a public and a private cloud. However, securityconsiderations can be substantially different for services(applications, storage, and other resources) that are made available bya service provider. Generally, public cloud service providers likeAmazon AWS, Microsoft and Google own and operate the infrastructure andoffer access only via Internet (direct connectivity is not offered).

A hybrid cloud consists of private cloud and public cloud components. Ina hybrid cloud, there has to be a determination of which component(public or private) will run a virtualized workload? For example, whenassigning a virtualized server, one may want to assign it to the leastexpensive option, whether that be public or private. In the alternative,they may want to assign the virtual server to the private cloud untilthere are no more resources available, then assign virtual servers tothe public cloud. In addition, a newly requested virtual server may havea higher priority for the private cloud and “bump” existing virtualservers to the public cloudhttp://www.globalstf.org/docs/proceedings/ccv/135.pdf discusses ADecision Support System for Moving Workloads to Public Clouds. This isdifferent from our idea because it talks more about a decision tomigrate existing bare metal applications to a virtual environment.

A central server administers the system, monitoring traffic and clientdemands to ensure everything runs smoothly. Most of the time, serversdon't run at full capacity. That means there's unused processing powergoing to waste. There is a need for a method and system for migratingworkloads between public clouds and between public and private clouds.Further, there is a need to consider provisioning virtual machines ondemand to meet new requirements and accounts for the possibility ofchoosing dynamically from several different cloud environments to takeadvantage of the best fit.

SUMMARY OF THE INVENTION

The invention discloses a database of available cloud environments towhich a virtual image workload may be deployed. The database includesinformation for each available cloud option, such as cost, distance,reliability, which workloads that environment may handle. A table ofattributes and weights can be provided and used to create a rating ofthe requested deployment. This rating determines where the image isdeployed. The invention discloses techniques for gathering additionalinformation from the user about the virtual image workload to bedeployed. A mapping algorithm can apply the attributes and weights tothe gathered information to create a rating for the deployment. Analgorithm is then used to determine to which available cloud environmentthe workload will be deployed. The present invention also implements asystem that determines which available cloud environments have securitymeasures such that the cloud environment is suitable to process aworkload that requires determined security measures for processing. Thisinvention can determine whether to migrate a workload to another cloudenvironment or process the workload at a current workload location.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a configuration of a network cloud environments through whichworkloads can be migrated geographically and processed.

FIG. 2 is an illustration of the internal configuration of a cloudenvironment for processing a workload.

FIG. 3 is an illustration of a network of cloud environments and cloudusers in various geographic locations for determining network latencyfrom clients in various cloud locations.

FIG. 4 is a flow diagram of the steps in a general implementation of themethod of the present invention for determining cloud environmentavailability.

FIG. 5 is a flow diagram of the steps in a general implementation of themethod of the present invention for determining cloud environmentavailability and cloud security for processing an identified workload.

FIG. 6 is a flow diagram of the steps in determining which cloudenvironment to migrate a workload.

DETAILED DESCRIPTION OF THE INVENTION

The present invention is a method and system for geographicallymigrating and processing workloads in a system of network cloudenvironments. This invention provides the ability to migrate a workloadfrom one cloud environment to another cloud environment for moreefficient processing and more efficient use of cloud environmentresources.

FIG. 1 illustrates a general configuration for a cloud network. Thisnetwork comprises four different cloud environments A, B, C and D. Thesecloud environments are positioned in different geographic locations.Communication links 102, 104, 106, 108 and 110 provide the ability forcommunications between cloud environments. The cloud environments haveusers 112 and 114 that use these clouds to store information in thecloud database and to also use these clouds for processing purposes. Thecloud users can store information in cloud databases in the respectiveor local clouds or store information in databases in any cloud in thenetwork. Similarly, users can process applications and workloads in theresident cloud for their geographic location or process the applicationsand workloads at any cloud in the network.

Even though cloud environments are used for both data storage andapplication and workload processing, the present invention has aparticular focus on determining cloud availability for processingworkloads. An objective is to improve the efficiency of workloadprocessing in a cloud network environment. FIG. 2 illustrates theinternal configuration of a cloud environment for processing a workload.An internal configuration for a cloud environment comprises a web server202, an application server 204 and a cloud database 206. Users 208, 210and 212 can communicate with the cloud environment through the webserver 202 through communication links 214.

In processing applications/workloads using cloud technology, forexample, customers in East Asia use applications in different hours thancustomers in Europe, and both groups of customers use applications indifferent hours than those in the Americas. Furthermore, in practice, tofacilitate efficient workload processing, multiple clouds are put inmultiple locations. In addition, the front-end server and possibly otherservers that are primarily for processing are moved rather than thecloud storage database, to the appropriate locations based on the user'slocation.

Referring to a cloud workload, the workload typically includes multiplevirtual machines, doing different jobs. For example, in this FIG. 2 asmentioned, the cloud has three virtual machines (“VMs”): the web server202, the application server 204, and the database 206. Very often duringworkload processing, the bandwidth requirements for the connectionbetween the front end (in this case, the web server 202) and theusers/clients are higher than those for the internal connections (inthis case, web server 202 to application server 204 and applicationserver 204 to database 206). In such cases, it would be better to placethe web server closer to the majority of users.

As mentioned, the method of the present invention provides a means toaccess the activity in a cloud network and determine the optimallocation in the cloud network for processing of a workload. Thisdetermination of the optimal location in the cloud network comprisesthree phases: 1) Application Instrumentation; 2) Network Test, and 3)Virtual Machine (VM) Migration.

Application Instrumentation

Application instrumentation analyzes the movement of packets between auser 212, the web server 202, the application server 204 and thedatabase 206. In the application instrumentation phase, which only needsto be done when the application or the average workload changes, themethod of the present invention checks the number of packets used forthe different connections. This process assesses the amount of trafficon the network. As shown in FIG. 2, the method would look for threevalues:

Nuw: The number of packets going between the web server and the users.

Nwa: The number of packets going between the web server and theapplication server.

Nad: The number of packets going between the application server and thedatabase.

The invention also checks the size of the servers, including theirdisks:

Sa: The web server; Sb: The application server; Sc: The database server

Network Test

The network test is the second phase in determining of the optimallocation in the cloud. Referring to FIG. 3, shown is an illustration ofa network of cloud environments and cloud users in various geographiclocations for determining network latency from clients in various cloudlocations.

This network test phase determines the latency in the network. Thelatency is basically the time required for a packet to move from aninitial network component to a second network component and then back tothe original network component. Every hour or so, use a service that hasclients in multiple places, such as geoedge.com, to get the latency fromclient locations to various clouds. For discussing latency, theparameters are identified as follows:

LDT—Direct latency Toronto

LDS—Direct latency Shanghai

LDU—Direct latency United States

-   -   Nc—Number of uses in China    -   Ne—Number of uses in Europe    -   Nu—Number of uses in United States

Lcs—latency between China and Shanghai

Lct—latency between China and Toronto

Lut—latency between United States and Toronto

Lus—latency between United States and Shanghai

Let—latency between Europe and Toronto

Les—latency between Europe and Shanghai

Lst—latency between Shanghai and Toronto

Referring to FIG. 3, using these values, it is possible to approximatethe total latency. If China currently has Nc users, Europe Ne users andthe United States Nu users, then the direct latency would beLDs=Nc*Lcs+Ne*Les+Nu*Lus if the front end server were in Shanghai, andLDt=Nc*Lct+Ne*Let+Nu*Lut.If the database VM has to stay in Toronto (it has a huge disk so itwould be too big to move), there are three possible configurations:

1. Everything is in Toronto. In that case,

L1=LDt=Nc*Lct+Ne*Let+Nu*Lut.

2. Only the web server is in Shanghai. In that case,

L2=LDs+Lst*(Nc+Ne+Nu)*(Nwa/Nuw).

3. Web server and application server in Shanghai. In that case,

L3=LDs+Lst*(Nc+Ne+Nu)*(Nad/Nuw).

Virtual Machine (VM) Migration

In this phase, there is a determination of whether to move or migratedata or a workload to a location other than the original location. Tomake this decision, there has to be determination of how much latencyjustifies moving an amount of data between Toronto and Shanghai. Thisfactor will be referred to as factor q. Calculate the minimum of {L1,L2, L3}. If that minimum is different from the current state by morethan qSa (if switching between 1 and 2), qSb (if switching between 2 and3), or q(Sa+Sb) (if switching between 1 and 3), switch the virtualmachine from one cloud to the other.

The method for determining the availability of a cloud environment forpurposes of workload migration is illustrated in FIG. 4. In this methodan initial step 402 is to identify a workload for possible migration toan available cloud environment for processing. This identification of aworkload for processing at an available cloud environment can involvethe use of various established parameters such as size of the workloadand current location of the workload. The next step 404 is to identifycloud environments in a cloud network that are available to performworkload processing activities. This step 404 can involve establishmentof a database of clouds and a rating system that characterizes theavailability of each cloud environment. Step 406 identifies a generalprocessing source for the specific workload for which processing isdesired. This step identifies the current processing source for theworkload. For example, if the client with the workload to be processedis in the United States, this step 406 identifies the processing sourcein the United States (generally, the first option) for processing theworkload. Step 408 begins the assessment of the servers in an identifiedcloud network. In addition to the initial processing source identifiedin step 406, step 408 identifies other servers in the cloud network thatcould be potential servers for processing the workload.

As previously discussed, in assessing servers in a cloud network todetermine cloud availability for processing workloads, it is desirableto perform latency calculations of the servers in the cloud network.Step 410 calculates latency performance for servers in cloudenvironments in the cloud network with the initiating cloud. A cloudenvironment can have multiple servers that are capable of workloadprocessing. In this step 410, the latency (time required to send apacket and have that packet returned) between servers in a particularcloud are calculated. Step 412 determines the latency between the cloudsin different networks. Referring back to FIG. 3, step 410 can determinethe latency of the Toronto cloud and a U.S. client. Step 412 candetermine the latency between the Toronto cloud and the Shanghai cloudor the latency between a U.S. client and the Shanghai cloud. Step 414gathers and combines the latency information calculated in steps 410 and412. This step also combines the latency information with previouslyknown and identified information about the particular workloadidentified for processing. Step 416 then determines whether to processthe workload at the present computing machine and location identified instep 406 or to migrate the workload to a different cloud location.

As mentioned, workloads can be migrated between cloud environments tofacilitate more efficient use of processing resources. When there is ahigh volume of processing in one cloud location, workloads from thathigh volume cloud can be migrated to clouds that have much lower volumesat that same time. FIG. 4 describes the process of identifying availablecloud for processing workloads. This availability is based mainly oncapacity to accommodate the processing of additional workloads. However,workload migrate can involve other factors such as machine security. Inhybrid cloud systems, there can be public clouds and private clouds.Private clouds are typically more secure and not as accessible. Inaddition, some workloads also have security requirements and there maybe a desire to have these workloads processed on machines that have morestringent security mechanisms.

FIG. 5 describes an implementation of the method of the presentinvention for determining cloud environment availability and cloudsecurity for processing an identified workload. In FIG. 5, the steps502, 504, 506, 508, 510 and 512 are the same as steps 402, 404, 406,408, 410 and 412 of FIG. 4 respectively. Step 514 gathers and combinesthe latency information calculated in steps 510 and 512. This step alsocombines the latency information with previously known and identifiedinformation about the particular workload identified for processing. Atthis point, step 516 identifies and determines security requirements foran identified workload. Step 518 determines whether a workload could beprocessed on a public cloud. Typically, the private cloud would havesufficient security to satisfy processing requirements for any workload.Step 520 determines whether to execute the specific workload at thepresent computing machine location or to move or migrate the workload toa different cloud location for processing.

FIG. 6 provides more details about the process of identifying whichspecific cloud to migrate a workload for processing. As part ofidentifying an appropriate cloud environment for processing a workloadstep 602 establishes a database of available cloud environments to whicha workload may be deployed. The database could be comprised based on acapacity requirement such as clouds that have fifty percent (50%)available capacity at any one time can be included in the database.

A rating system can be created, and each master image from which avirtualized workload is cloned is rated according to this system. Therating mechanism has a series of attributes, each with its own weight.The various master images are rated on these attributes. Additionally,the requestor of the virtualized workload can enter information toinfluence the rating of the system. Step 604 rates each available cloudin the database. The database rating system includes ratings for eachavailable cloud option can be based on parameters such as cost,distance, reliability, which workloads that environment may handle. Therating system can generate a table of attributes and weights. This tableis used to create a rating of the requested deployment. This rating willdetermine where the image is deployed. Step 606 gathers specificinformation about the workload for which processing is desired. Thisinformation about the workload can include the size of the workload.Step 608 creates a rating for the workload to be processed. This stepincorporates information from steps 604 and 606 to create the rating. Amapping algorithm can be used to create this rating. The mappingalgorithm applies attributes and weights to the input about the workloadto create a rating for the workload deployment. As previously mentioned,another parameter could be security of the processing for the work.Based on the rating created in step 608 for a workload, step 610determines which available cloud from the cloud database to deploy theworkload for processing. In this step 610, an algorithm to determiningto which available cloud environment the workload will be deployed.

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those skilled in the art will appreciate that the processes of thepresent invention are capable of being distributed in the form ofinstructions in a computer readable storage medium and a variety ofother forms, regardless of the particular type of medium used to carryout the distribution. Examples of computer readable storage mediainclude media such as EPROM, ROM, tape, paper, floppy disc, hard diskdrive, RAM, and CD-ROMs.

We claim:
 1. A method for geographic migration of workloads forprocessing between available cloud environments comprising: identifyinga workload for processing; identifying one or more cloud environments ina cloud network that are available for process workloads; assessingactivity of the identified cloud environments in the cloud network thatare available for processing workloads; identifying a machine in a cloudenvironment for processing a workload; and processing the identifiedworkload at the identified machine in the cloud environment.
 2. Themethod as described in claim 1 further comprising after said identifyinga machine in a cloud environment for processing a workload, determininga geographic location of the identified machine for processing theworkload and migrating the identified workload for processing to thegeographic location of the identified machine.
 3. The method asdescribed in claim 1 further comprising creating a database of availablecloud environments to which a virtual image workload may be deployed,the available clouds in the database being rated according to a set ofparameters that can include cost, distance, reliability, which workloadsthat environment may handle.
 4. The method as described in claim 3wherein said assessing activity of the identified cloud environments inthe cloud network that are available for processing workloads furthercomprises: calculating latency performances of machines at a cloudenvironment of the workload for processing; and calculating latencyperformances between one or more cloud environments in the cloudnetwork.
 5. The method as described in claim 4 wherein said identifyinga machine in a cloud environment for processing a workload furthercomprises: combining calculated latency performance information and theinformation of the identified workload for processing; and generating anassessment of the performance of processing the workload at variousavailable cloud environments.
 6. The method as described in claim 5further comprising determining whether to migrate the workloadidentified for processing to a cloud environment at a differentgeographic location or to process the identified workload at its currentcloud environment location.
 7. The method as described in claim 4wherein said identifying a machine in a cloud environment for processinga workload further comprises: creating a table of attributes; creating arating of the workload to be processed; and determining a processinglocation for the identified workload based on the created rating for theworkload.
 8. The method as described in claim 1 wherein said identifyinga workload for processing further comprises gathering additionalinformation from the user about the virtual image workload to bedeployed.
 9. The method as described in claim 7 wherein said determininga processing location for the identified workload based on the createdrating for the workload further comprises creating a mapping algorithmwhich applies the attributes and weights to the input from informationgathered from an identified workload to create a rating for placement ofthe identified workload for processing.
 10. The method as described inclaim 9 further comprising creating an algorithm to determine to whichavailable cloud environment the workload will be deployed.